home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / doom / apv200.zip / MONEDIT.ZIP / MONEDIT.CPP next >
C/C++ Source or Header  |  1995-08-27  |  3KB  |  130 lines

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <iostream.h>
  4. #include <string.h>
  5.  
  6. struct MONSTER {
  7.        char lname;
  8.        char name[60];
  9.        long strength;
  10.        long gold;
  11.        char lweapon;
  12.        char weapon[60];
  13.        long exp_points;
  14.        long hit_points;
  15.        char ldeath;
  16.        char death[100];
  17. } monster[133];
  18.  
  19. main(int argc, char *argv[])
  20. {
  21. int index, level, lsize;
  22. char choice, lord_dir[100];
  23. FILE *f;
  24. MONSTER *m;
  25.  
  26.     clrscr();
  27.     if(argc<2) {
  28.         fprintf(stderr, "\n\nUSE:\n\nMON <lord directory>\n\n");
  29.         return 1;
  30.     }
  31.     strcpy(lord_dir, argv[1]);
  32.     if(lord_dir[strlen(lord_dir)]=='\\') {
  33.         strcat(lord_dir, "lenemy.dat");
  34.         if((f=fopen(lord_dir,"rb"))==NULL) {
  35.             fprintf(stderr, "Can't find LENEMY.DAT file\n\n");
  36.             return 1;
  37.         }
  38.     }
  39.     else {
  40.         strcat(lord_dir, "\\lenemy.dat");
  41.         if((f=fopen(lord_dir,"rb"))==NULL) {
  42.             fprintf(stderr, "Can't find LENEMY.DAT file\n\n");
  43.             return 1;
  44.         }
  45.     }
  46.     m=monster;
  47.     while(fread(m, sizeof(*m), 1, f))
  48.         m++;
  49.     fclose(f);
  50.     index=level=1;
  51.     m=monster;
  52.  
  53. main:
  54.     clrscr();
  55.     cout << "\033[32m\nLevel:\t" << level << "\n\n";
  56.     cout << "(1) Name:\t" << m->name << "\n";
  57.     cout << "(2) Strength:\t" << m->strength << "\n";
  58.     cout << "(3) Gold:\t" << m->gold << "\n";
  59.     cout << "(4) Weapon:\t" << m->weapon << "\n";
  60.     cout << "(5) Experience:\t" << m->exp_points << "\n";
  61.     cout << "(6) Hit Points:\t" << m->hit_points << "\n";
  62.     cout << "(7) Death String:\n" << m->death << "\n\n";
  63.     cout << "\033[36m+/- Up or down a level, N/P Next, Previous record, S Save, Q Quit\n";
  64.     cin >> choice;
  65.     switch(choice) {
  66.  
  67.         case '1' : cout << "Name: ";
  68.             gets(m->name);
  69.             break;
  70.         case '2' : cout << "Strength: ";
  71.             cin >> m->strength;
  72.             break;
  73.         case '3' : cout << "Gold: ";
  74.             cin >> m->gold;
  75.             break;
  76.         case '4' : cout << "Weapon: ";
  77.             gets(m->weapon);
  78.             break;
  79.         case '5' : cout << "Experience: ";
  80.             cin >> m->exp_points;
  81.             break;
  82.         case '6' : cout << "Hit Points: ";
  83.             cin >> m->hit_points;
  84.             break;
  85.         case '7' : cout << "Death String:\n";
  86.             gets(m->death);
  87.             break;
  88.         case '=' :
  89.         case '+' : if(level<12) {
  90.                 level++;
  91.                 m+=11;
  92.                }
  93.                break;
  94.         case '_' :
  95.         case '-' : if(level>1) {
  96.                 level--;
  97.                 m-=11;
  98.                }
  99.                break;
  100.         case 'n' :
  101.         case 'N' : if(index<11)
  102.                 index++;
  103.                else if(level<12) {
  104.                 index=1;
  105.                 level++;
  106.                }
  107.             m++;
  108.             break;
  109.         case 'p' :
  110.         case 'P' : if(index>1)
  111.                 index--;
  112.                else if(level>1) {
  113.                 index=11;
  114.                 level--;
  115.                }
  116.             m--;
  117.             break;
  118.         case 's' :
  119.         case 'S' : f=fopen(lord_dir,"wb");
  120.             fwrite(monster, sizeof(monster), 1, f);
  121.             fclose(f);
  122.             break;
  123.         case 'q' :
  124.         case 'Q' : clrscr();
  125.             return 0;
  126.     }
  127.     clrscr();
  128.     goto main;
  129. }
  130.